"""
多态：
- 核心：不同子类对同一父类方法的 “重写”，使同一操作呈现不同行为。
- 实现：子类重写父类的方法（方法名相同，逻辑不同）。
"""
class Animal:
    def speak(self):
        # 父类方法：未实现具体逻辑
        pass

class Dog(Animal):
    # 重写父类方法
    def speak(self):
        return "汪汪汪"

class Cat(Animal):
    # 重写父类方法
    def speak(self):
        return "喵喵喵"

class Duck(Animal):
    # 重写父类方法
    def speak(self):
        return "嘎嘎嘎"

# 统一调用：传入不同对象，表现不同行为
def make_sound(animal):
    print(animal.speak())

# 多态体现：同一方法（speak），不同对象有不同结果
make_sound(Dog())  # 输出：汪汪汪
make_sound(Cat())  # 输出：喵喵喵
make_sound(Duck())  # 输出：嘎嘎嘎